Mdbook 排版混乱

表现

  • 左侧菜单栏收不回去
  • 占用大面积显示左侧菜单栏

原因

  • Mdbook 旧版本升级为 Latest 时,修改了 index.hbs 文件模板
  • 可以通过新版 Mdbook 新建工程时,建立的新 index.hbs 文件看出
    • 对比文件推荐使用 WinMerge,很好用

解决

  • 比对旧版 index.hbs 和新版 index.hbs 文件

  • 将旧版文件的相应部分内容,替换为新版(大部分内容应该是一致的)

    • 尤其是下面这部分

    •          <!-- Hide / unhide sidebar before it is displayed -->
      -        <script type="text/javascript">
      -            var html = document.querySelector('html');
      -            var sidebar = 'hidden';
      +        <script>
      +            var body = document.querySelector('body');
      +            var sidebar = null;
      +            var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
                  if (document.body.clientWidth >= 1080) {
                      try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
                      sidebar = sidebar || 'visible';
      +            } else {
      +                sidebar = 'hidden';
      +            }
      -            html.classList.remove('sidebar-visible');
      -            html.classList.add("sidebar-" + sidebar);
      +            sidebar_toggle.checked = sidebar === 'visible';
      +            body.classList.remove('sidebar-visible');
      +            body.classList.add("sidebar-" + sidebar);
              </script>
      
    • 但不仅限于这部分